package com.wande.dataplatform.service;

import com.wande.common.mybatis.core.page.PageQuery;
import com.wande.common.mybatis.core.page.TableDataInfo;
import com.wande.dataplatform.domain.bo.FillDataBo;
import com.wande.dataplatform.domain.vo.FillDataVO;

import java.util.Collection;
import java.util.List;

/**
 * 数据填报数据Service接口
 *
 * @author wande
 */
public interface IFillDataService {

    /**
     * 查询数据填报数据列表
     */
    TableDataInfo<FillDataVO> queryPageList(FillDataBo bo, PageQuery pageQuery);

    /**
     * 查询数据填报数据列表
     */
    List<FillDataVO> queryList(FillDataBo bo);

    /**
     * 查询数据填报数据详情
     */
    FillDataVO queryById(Long id);

    /**
     * 新增数据填报数据
     */
    Long insertByBo(FillDataBo bo);

    /**
     * 修改数据填报数据
     */
    Boolean updateByBo(FillDataBo bo);

    /**
     * 校验并批量删除数据填报数据
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 提交填报数据
     */
    Boolean submitData(Long id);

    /**
     * 审批填报数据
     */
    Boolean approveData(Long id, Boolean approved, String reason);

    /**
     * 验证填报数据
     */
    Boolean validateData(Long templateId, String dataContent);

    /**
     * 导出填报数据
     */
    byte[] exportData(Long id, String format);

    /**
     * 导入填报数据
     */
    Boolean importData(Long templateId, byte[] data, String format);
}
